home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #6 / Amiga Plus CD - 2004 - No. 06.iso / AmiSoft / Util / libs / ExtraLib.lha / Extra / include / rhosigma / settings.h < prev    next >
C/C++ Source or Header  |  2004-05-30  |  6KB  |  134 lines

  1. /* ___________________________________________________________________________
  2. ** |*************************************************************************|
  3. ** |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
  4. ** |*| Set TAB to 4 for best readable file layout.  |*|  C++ MaxonDev 4.0  |*|
  5. ** |*|______________________________________________|*|____________________|*|
  6. ** |*************************************************************************|
  7. ** |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
  8. ** |*|               |*|  $Id: settings.h (18.04.03)                       |*|
  9. ** |*| ###### ###### |*|  RhoSigma Source based on NDK 3.1 Includes 40.15  |*|
  10. ** |*| ##  ## ##   # |*| _________________________________________________ |*|
  11. ** |*| ##  ##  ##    |*|                                                   |*|
  12. ** |*| ######   ##   |*|  Useful defines and extensions for NDK includes   |*|
  13. ** |*| ##      ##    |*|                                                   |*|
  14. ** |*| ##     ##   # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
  15. ** |*| ##     ###### |*|  Copyright © 1998-2003 RhoSigma, Roland Heyder    |*|
  16. ** |*|               |*|  All Rights Reserved.                             |*|
  17. ** |*|_______________|*|___________________________________________________|*|
  18. ** |*************************************************************************|
  19. ** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  20. */
  21.  
  22. #ifndef    RHOSIGMA_SETTINGS_H
  23. #define    RHOSIGMA_SETTINGS_H
  24.  
  25. #ifndef        EXEC_TYPES_H
  26. #include    <exec/types.h>
  27. #endif
  28.  
  29.     /** enhanced booleans **/
  30.  
  31. #ifndef    UPPER            /* Signum-Werte zur Verwendung in */
  32. #define    UPPER    1L        /* Variablen des Typs BOOL        */
  33. #endif
  34. #ifndef    EQUAL
  35. #define    EQUAL    0L
  36. #endif
  37. #ifndef    LOWER
  38. #define    LOWER    -1L
  39. #endif
  40.  
  41.     /** for DisplayAlert() **/
  42.  
  43. #define DATPOS_C -1        /* Text zentrieren   */
  44. #define DATPOS_L -2        /* Text linksbündig  */
  45. #define DATPOS_R -3        /* Text rechtsbündig */
  46.  
  47. /*** rhosigma / DATEXT() ***
  48. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  49. * Dieses Macro erstellt einen Teilstring des Parameterstrings der Intuition-
  50. * Routine »DisplayAlert()«. Wahlweise kann der Text automatisch zentriert,
  51. * oder links- bzw. rechtsbündig ausgerichtet werden.
  52. *-----------------------------------------------------------------------------
  53. * Definiert:    settings.h  (Copyright © 1998-2003 RhoSigma, Roland Heyder)
  54. *
  55. * Schablone:    Name/A, xPos/A/N, yPos/A/N, String/A, EndFlag/N/S
  56. *
  57. * Parameter:    Name    --> ein beliebiger Name als ID für diesen Teilstring
  58. *
  59. *                xPos    --> x-Position des Textes,
  60. *                                oder einer der oben definierten DATPOS-Werte.
  61. *
  62. *                yPos    --> y-Position des Textes,
  63. *                                Ausrichtung nach BaseLine des Fonts (topaz/8)
  64. *
  65. *                String    --> der Text selbst aber ohne ("") Anführungszeichen
  66. *
  67. *                EndFlag    --> - TRUE , dann endet hier der Parameterstring
  68. *                            - FALSE, dann MUSS noch ein weiterer Teilstring
  69. *                                     (Macro-Aufruf) folgen.
  70. *
  71. * Bemerkung:    Leider gestattet der Macro-Aufbau sowie die Initialisierungs-
  72. *                Regeln in C/C++ und dazu noch die Macken einiger Compiler keinen
  73. *                vollständigen Aufbau des Parameterstrings. Aus diesem Grunde ist
  74. *                es in C/C++ erforderlich, die einzelnen Teilstrings vor der Be-
  75. *                nutzung noch mittels der ebenfalls hier beschriebenen Funktion
  76. *                »DAJOIN()« abschließend vorzubereiten.
  77. *
  78. *                Ein Beispiel für die Benutzung dieses Macros finden Sie in
  79. *                der Datei »demo/AlertDemo.C«.
  80. *
  81. *   ACHTUNG:    Die einzelnen Teilstrings, die später zu einem Parameterstring
  82. *   ¯¯¯¯¯¯¯¯    gehören, müssen auf JEDEN FALL direkt nacheinander deklariert
  83. *                werden, während zwischen zwei kompletten Parameterstrings aber
  84. *                durchaus auch andere Deklarationen gemacht werden können.
  85. *
  86. * Siehe auch:    »DAJOIN()«
  87. *«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««*/
  88.  
  89. #define DATEXT(Name, xPos, yPos, String, EndFlag)                    \
  90. typedef struct {                                                    \
  91.     WORD    da_PosX;                                                \
  92.     UBYTE    da_PosY;                                                \
  93.     TEXT    da_Text[sizeof(#String)+(3-((sizeof(#String)-1)&3))];    \
  94.     UBYTE    da_Cont;                                                \
  95. } datext_##Name;                                                    \
  96. STATIC datext_##Name Name = {xPos,yPos,#String,!EndFlag};
  97.  
  98. /*** rhosigma / DAJOIN() ***
  99. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  100. * Diese Funktion dient der abschließenden Vorbereitung der mittels »DATEXT()«
  101. * initialisierten Parameterstrings zur Verwendung mit »DisplayAlert()«. Idealer
  102. * Weise sollte man diese Funktion als erste innerhalb von »main()« aufrufen.
  103. *  Die Funktion ist Bestandteil der mitgelieferten »rhosigma.lib«, welche Sie
  104. * mit Ihrem Projekt linken sollten.
  105. *-----------------------------------------------------------------------------
  106. * Synopsis:        VOID DAJOIN (Count, ...)
  107. *
  108. * Eingaben:        Count    -->    (UWORD)    Anzahl der übergebenen Teilstrings
  109. *
  110. *                ...        --> (&ID)    nacheinander die Adressen (Referenzen) der
  111. *                                    einzelnen Teilstrings
  112. *
  113. * Bemerkung:    Mehrfacher Aufruf für jeden einzelnen Teilstring ist möglich,
  114. *                aber durch die variable Argumentenliste eigentlich überflüssig,
  115. *                da man so auch alle Teilstrings auf einmal angeben kann.
  116. *
  117. *                Ein Beispiel für die Benutzung dieser Funktion finden Sie in
  118. *                der Datei »demo/AlertDemo.C«.
  119. *
  120. *   ACHTUNG:    Diese Funktion muß auch dann aufgerufen werden, wenn der Para-
  121. *    ¯¯¯¯¯¯¯¯    meterstring nur aus einem einzigen Teilstring besteht, da das
  122. *                Macro »DATEXT()« keine vollständige Initialisierung des gleichen
  123. *                vornehmen kann. Das wird alles erst durch »DAJOIN()« erledigt !!
  124. *
  125. * Siehe auch:    »DATEXT()«
  126. *«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««*/
  127.  
  128. #ifndef        RHOSIGMA_H
  129. #include    <rhosigma/rhosigma.h>
  130. #endif
  131.  
  132. #endif    /* RHOSIGMA_SETTINGS_H */
  133.  
  134.